# 导入pandas库，用于数据处理和分析
import pandas as pd
# 导入numpy库，用于数值计算
import numpy as np

# 定义数据文件的URL路径
filepath = "https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-Coursera/laptop_pricing_dataset_base.csv"

# 从URL读取CSV文件，header=None表示第一行不是列名
df = pd.read_csv(filepath, header=None)

# 定义列名列表，描述笔记本电脑的各项特征
headers = ["Manufacturer", "Category", "Screen", "GPU", "OS", "CPU_core", "Screen_Size_inch", "CPU_frequency", "RAM_GB", "Storage_GB_SSD", "Weight_kg", "Price"]

# 将定义的列名赋值给数据框
df.columns = headers


# 输出包括列名和对应的前10行数据值

print(df.head(10))

# 将数据中的问号'?'替换为NaN（缺失值），inplace=True表示直接修改原数据框
# 将数据框中的问号'?'替换为NaN缺失值，inplace=True表示直接在原数据框上进行修改，不创建新的数据框副本
df.replace('?', np.nan, inplace=True)

# 打印每列的数据类型
print(df.dtypes)

# 打印数据的统计摘要，include='all'表示包含所有类型列的统计信息
print(df.describe(include='all'))

# 打印数据框的基本信息，包括数据类型、非空值数量等
print(df.info())
